package com.example.swordjava;


public class Test44 {

    public static void main(String[] args) {

        int[][] a = {{1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}};

        System.out.println(Math.pow(1, 10));

    }

    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    /**
     * 数字序列中某一位的数字
     * 数字以 0123456789101112131415... 的格式作为一个字符序列，在这个序列中第 2 位（从下标 0 开始计算）是 2 ，
     * 第 10 位是 1 ，第 13 位是 1 ，以此类题，请你输出第 n 位对应的数字。
     */
    public int findNthDigit(int n) {
        int digit = 1;
        while (n > digit * Math.pow(10, digit)) {
            n += Math.pow(10, digit);
            digit++;
        }
        String num = "" + (n / digit);
        return (int) (num.charAt(n % digit)) - (int) '0';
    }

    public int findNthDigit2(int n) {
        // write code here
        int digit = 1;
        long start = 1;
        long sum = 9;
        while (n > sum) {
            n -= sum;
            digit++;
            start *= 10;
            sum = 9 * start * digit;
        }
        String num = (start + (n - 1) / digit) + "";
        int index = (n - 1) % digit;
        return (int) num.charAt(index) - (int) '0';
    }

}














